package pe.com.bbva.pct.service;

import java.util.List;

import javax.faces.model.SelectItem;

import pe.com.bbva.pct.domain.Regla;
import pe.com.bbva.pct.dto.ReglaDTO;
import pe.com.bbva.pct.dto.RelacionFuenteEntidadDTO;
import pe.com.bbva.pct.util.SelectLabel;

public interface ReglaService extends GeneralService{

	public int cantidadTotalObjetos(Object reglaVO) throws Exception;
	
	public List<SelectItem> obtenerListaFuentes(Long tipo) throws Exception;
	
	public List<SelectLabel> obtenerListaEntidades(Long idAplicacion) throws Exception;
	
	public List<RelacionFuenteEntidadDTO> obtenerCamposFuenteNuevo(Long idFuente) throws Exception;
	
	public List<SelectLabel> listarCamposEntidad(String claseEntidad, Long idAplicacion) throws Exception;
	
	public void insertarRegla(ReglaDTO reglaDTO) throws Exception;
	
	public ReglaDTO obtenerRegla(Long idReglaSeleccionada) throws Exception;
	
	public void actualizarRegla(ReglaDTO reglaDTO) throws Exception;
	
	public List<RelacionFuenteEntidadDTO>  actualizarRelaciones(List<RelacionFuenteEntidadDTO> listaRelacionFuenteEntidadDTO, Long idReglaFuente, Long strIdFuente, String strEntidad) throws Exception;
	
	public void eliminarRegla(Long idRegla) throws Exception;
	
	public List<RelacionFuenteEntidadDTO> obtenerRelaciones(Long idReglaFuente) throws Exception;
	
	public Long obtenerTipoDeFuente(Long idFuente) throws Exception;
	
	public Regla obtenerReglaPojo(Long idRegla) throws Exception;
}
